ResponseInterceptor.responseHandler   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 1
1
import { BEditaApiClient, BEditaClientResponse } from '../bedita-api-client';
2
import { AxiosResponse } from 'axios';
3
4
/**
5
 * Interface for a Response interceptor
6
 */
7
export interface ResponseInterceptorInterface {
8
9
    /**
10
     * The response handler called on request success.
11
     * Useful for edit data before return response.
12
     *
13
     * @param config The request configuration
14
     */
15
    responseHandler(response: AxiosResponse): AxiosResponse<any> | Promise<AxiosResponse<any>>;
16
17
    /**
18
     * The error handler called if something goes wrong.
19
     *
20
     * @param error The axios error
21
     */
22
    errorHandler(error: any): Promise<any>;
23
}
24
25
/**
26
 * Base class to implement response interceptors.
27
 */
28
export default abstract class ResponseInterceptor implements ResponseInterceptorInterface {
29
30
    /**
31
     * Keep the BEditaApiClient instance.
32
     */
33
    protected beditaClient: BEditaApiClient;
34
35
    /**
36
     * Constructor.
37
     *
38
     * @param beditaClient The bedita api client
39
     */
40
    constructor(beditaClient: BEditaApiClient) {
41
        this.beditaClient = beditaClient;
42
    }
43
44
    /**
45
     * @inheritdoc
46
     */
47
    public responseHandler(response: AxiosResponse): Promise<BEditaClientResponse<any> | AxiosResponse<any>> {
48
        return Promise.resolve(response);
49
    }
50
51
    /**
52
     * @inheritdoc
53
     */
54
    public errorHandler(error: any): Promise<any> {
55
        return Promise.reject(error);
56
    }
57
}
58